// 引入用户集合构造函数
const { User } = require("../../../model/user");
//引入mongoose-sex-page模块用于分页
const pagination = require("mongoose-sex-page");

async function getUser(obj, pagenum, pagesize) {
  var users = await pagination(User)
    .find(obj)
    .populate({ path: "title1", populate: { path: "Tauthor" } })
    .page(pagenum)
    .size(pagesize)
    .display(5)
    .exec();
  return users;
}

module.exports = async (req, res) => {
  // 获取axios传来的params查询查询
  const { query, pagenum, pagesize } = req.query;
  // console.log(req.headers)
  // 如果有查询参数，并且不是notselect 和 selected
  if (query && query !== "notselect" && query !== "selected") {
    // 只查询role是查询参数query的用户
    res.send(await getUser({ role: query }, pagenum, pagesize));
  } else if (query === "notselect") {
    // 只查询role是student和selected为false的用户
    res.send(await getUser({ role: "student", selected: false }, pagenum, pagesize));
  } else if (query === "selected") {
    // 只查询role是student和selected为true的用户
    res.send(await getUser({ role: "student", selected: true }, pagenum, pagesize));
  } else {
    //从数据库中找出数据
    //pagination(集合构造函数)
    //page 指定当前页
    //size 指定每页显示页码数量
    //display 指定客户端要显示的页码数量
    //exec 向数据库中发送查询请求
    res.send(await getUser(null, pagenum, pagesize));
  }
};
